7. Funkcje


    Funkcje s▒ to bloki instrukcji. Aby wyja╢niµ konieczno╢µ ich istnienia pos│u┐Ω siΩ przyk│adem. Tak wygl▒da aplet zawieraj▒cy ci▒g instrukcji:

<SCRIPT LANGUAGE="JavaScript">
 <!--
  document.write("To jest pierwsza linijka tekstu<BR>");
  document.write("To jest druga linijka tekstu<BR>");
  document.write("To jest trzecia linijka tekstu<BR>");
 //-->
</SCRIPT>

Efekt dzia│ania:

A teraz ten sam skrypt z wykorzystaniem funkcji:

<SCRIPT LANGUAGE="JavaScript">
 <!--
  document.write("To jest pierwsza linijka tekstu<BR>");

 function napis()
  {
   document.write("To jest druga linijka tekstu<BR>");
  }

  document.write("To jest trzecia linijka tekstu<BR>");
 //-->
</SCRIPT>

I jaka jest r≤┐nica:

Mo┐na st▒d wywnioskowaµ, ┐e funkcja nie wykonuje siΩ dop≤ki nie jest ona wywo│ana. Funkcje wywo│uje siΩ poprzez napisanie w kodzie jej nazwy wraz z jej ewentualnymi parametrami (w nawiasie), a deklaruje siΩ j▒ w nastΩpuj▒cy spos≤b:

function Nazwa_Funkcji(parametr1, ...)
 {
   polecenie;
   polecenie;
   polecenie;
 }

Nazwa funkcji, paramtru jak i zmiennej s▒ podporz▒dkowane kilku zasadom:

Jak ju┐ wspomnia│em na pocz▒tku tej lekcji, funkcja jest to blok instrukcji. Takie bloki umieszczamy w nawiasach klamrowych { }. Je┐eli znasz podstawy programowania w jakimkolwiek jΩzyku, to wiesz zapewne, ┐e jest podzia│ miΩdzy takimi osobnymi blokami instrukcji na procedury, czyli takie, kt≤re siΩ poprostu wykonuj▒, oraz funkcje, kt≤re po wykonaniu wszystkich instrukcji zwracaj▒ jaki╢ produkt swojej dzia│alno╢ci. W JavaScript nie ma procedur, a ich rolΩ spe│niaj▒ funkcje, kt≤re nic nie zwracaj▒. Funkcja mo┐e zwr≤ciµ jak▒╢ warto╢µ dziΩki poleceniu return. Skoro funkcja co╢ zwraca, zapewne chcieliby╢my, aby efekt tej pracy zosta│ zapisany do jakiej╢ zmiennej. Dokonuje siΩ to zwyk│ym przypisaniem warto╢ci zmiennej, tyle ┐e zamiast wyra┐enia po prawej stronie jest wywo│anie funkcji. Jest ono traktowane jak normalna zmienna typu zwracanego przez funkcjΩ, tote┐ mo┐na na nim wykonywaµ dalsze operacje. Zobacz przyk│ad:

<SCRIPT LANGUAGE="JavaScript">
 <!--

  function kwadrat(liczba)
   {
    wynik = liczba * liczba;
    return wynik; /* zwr≤cenie warto╢ci */
   }

  function oblicz() /* niby procedura */
   {
    liczba2 = 3 * kwadrat(2);
    window.alert("Potrojony kwadrat liczby 2 wynosi " + liczba2);
   }

 //-->
</SCRIPT>

w sekcji <BODY>

<IMG SRC="obrazek.gif" ALT="Kliknij mnie" onClick="oblicz()">
Kliknij mnie